package com.Endurancer.manager.mapper;

import com.Endurancer.manager.domain.Comment;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;


/**
 * 评论Mapper接口
 *
 * @author Endurancer
 * @date 2025-02-04
 */
public interface CommentMapper
{
    /**
     * 查询评论
     *
     * @param commentId 评论主键
     * @return 评论
     */
    public Comment selectCommentByCommentId(Long commentId);

    /**
     * 查询评论列表
     *
     * @param comment 评论
     * @return 评论集合
     */
    public List<Comment> selectCommentList(Comment comment);

    /**
     * 新增评论
     *
     * @param comment 评论
     * @return 结果
     */
    public int insertComment(Comment comment);

    /**
     * 修改评论
     *
     * @param comment 评论
     * @return 结果
     */
    public int updateComment(Comment comment);

    /**
     * 删除评论
     *
     * @param commentId 评论主键
     * @return 结果
     */
    public int deleteCommentByCommentId(Long commentId);

    /**
     * 批量删除评论
     *
     * @param commentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCommentByCommentIds(Long[] commentIds);
    @Select("select count(*) from mg_comment where fid = #{fid} and module = #{module}")
    Integer selectCount(@Param("fid") Long fid, @Param("module") String module);

    List<Comment> selectRoot(@Param("fid") Long fid, @Param("module") String module);

    List<Comment> selectByRootId(Long rootId);

    @Select("select * from mg_comment where pid = #{pid}")
    List<Comment> selectByPid(Long pid);

    @Select("select count(*) from mg_comment where fid = #{fid} and module = #{module}")
    List<Comment> selectAllByFid(Long fid, String module);
}
